/*
 *  Source.h
 *  Ray Tracing
 *
 *  Created by Jean-Marc Comby + Romain Dequesne on Mon Mar 29 2004.
 *  Copyright (c) 2004. All rights reserved.
 *
 */

#include "Source.hpp"

/**
 * Constructeur standard, qui initialise la classe mère et la
 * position. La version par défaut crée une source blanche à la
 * position (0,0,0).
 *
 * @param rvb Couleur de la Source.
 * @param xyz position de la Source.
 * @param type type de source lumineuse.
 */
Source::Source(const Couleur& rvb, const Coord& xyz, const EnumSource& type)
  : Lumiere( rvb, type ), Position( xyz )
{}

/**
 * Constructeur de copie, permettant de dupliquer une Source.
 *
 * @param src Source à copier.
 */
Source::Source(const Source& src)
: Lumiere( src.Color, src.TypeSource ), Position( src.Position )
{}

/**
 * Le destructeur n'a rien de spécial à faire.
 */
Source::~Source()
{}

/**
 * Permet de récupérer la Couleur de la Source.
 *
 * @return une référence constante sur Color.
 */
const Couleur& Source::color() const
{
  return Color;
}

/**
 * Permetde récupérer la position de la Source.
 *
 * @return une référence constante sur Position.
 */
const Coord& Source::position() const
{
  return Position;
}

double Source::attenuation(const Coord& coord) const
{
  return 1.;
}
